home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 3.0 KB | 58 lines |
- 10 PRINT: PRINT: PRINT "COMBLINE FILTER DESIGN"
- 11 PRINT" Calculates the demensions of band pass microstrip comb line filters.
- 12 PRINT" Normalized low pass prototype values for the desired filter required
- 15 PRINT:PRINT,"K2UYH ----- MODIFIED IBM PC ----- WA2TIF":PRINT
- 20 PRINT "CAPACITIVE-TAPED EQUAL END SECTION CASE": PRINT
- 30 DIM G(10), C(10), Z(10), ZO(10,10), ZE(10,10), A(10,10): REM PRECISION 5
- 40 PRINT: INPUT "CAPACITOR OR STUB LOADED CASE (C/S)"; C$
- 50 PRINT: INPUT "NUMBER OF FILTER SECTIONS"; N: DR=PI/180
- 60 PRINT: PRINT "LOW PASS PROTOTYPE ELEMENTS:"
- 70 FOR I=0 TO N+1: PRINT "G("; I; ") ";: INPUT G(I): NEXT
- 80 PRINT: INPUT "FILTER CENTER FREQ IN MHZ AND FRACTIONAL BW"; F0, Q: W0=F0*2*PI*1E+06
- 90 INPUT "TERMINAL Z0 AND UNMATCHED Z"; RT, R
- 100 INPUT "RESONATOR LENGTH IN DEGREES"; AR
- 110 IF C$="C" THEN AS=45: GOTO 130
- 120 INPUT "TUNING STUB LENGTH IN DEGREES"; AS
- 130 LR=AR*DR: LS=AS*DR: G=1/R
- 140 TR=SIN(LR)/COS(LR): TS=SIN(LS)/COS(LS): PRINT
- 150 IF C$="C" THEN LF=2*LR/SIN(2*LR)+1: B=G*SQR(R/RT-1): GOTO 170
- 160 LF=2*LR/SIN(2*LR)+2*LS/SIN(2*LS): B=G*SQR(R/RT-1)
- 170 GX=Q*R/(G(0)*G(1)*2): K=B*GX*LF*TS/(1-B*GX*2*LR/SIN(2*LR))
- 180 Z(1)=K/B: Z(N)=Z(1): C=1/(1+K/TS): C(1)=B/(K*W0): C(N)=C(1)
- 190 IF C$="C" THEN LC=2*LR/SIN(2*LR)+C ELSE LC=2*LR/SIN(2*LR)+C*2*LS/SIN(2*LS)
- 200 A(1,2)=Q*SQR(LF*LC)/(2*SQR(G(1)*G(2))): A(N-1,N)=A(1,2)
- 210 ZR=GX*LC/(TR*(1-A(1,2)^2)): PRINT "RESONATOR Z =", ZR: PRINT
- 220 IF N<=3 THEN 270 ELSE FOR I=1 TO 6: FOR J=2 TO N-2: ZT(J)=Z(J)
- 230 A(J,J+1)=Q*LF*(1+(A(J-1,J)^2+A(J+1,J+2)^2)/2)/(2*SQR(G(J)*G(J+1)))
- 240 Z(J)=ZR*TS*TR*(1-A(J-1,J)^2-A(J,J+1)^2): C(J)=1/(W0*Z(J)): NEXT: NEXT
- 250 FOR J=2 TO N-2
- 260 IF ABS((ZT(J)-Z(J))/Z(J))>0.01 THEN PRINT "CONV. ER": END ELSE NEXT
- 270 IF N=2 THEN 280 ELSE J=N-1: Z(J)=ZR*TS*TR*(1-A(J-1,J)^2-A(J,J+1)^2): C(J)=1/(W0*Z(J))
- 280 FOR J=1 TO N-1: ZE(J,J+1)=ZR*(1+A(J,J+1)): ZO(J,J+1)=ZR*(1-A(J,J+1))
- 290 IF C$="C" THEN 320
- 300 PRINT "N"; J; TAB(6); "Z STUB"; Z(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
- 310 J=N: PRINT "N"; J; TAB(6); "Z STUB"; Z(J): GOTO 340
- 320 PRINT "N"; J; TAB(6); "CAP"; C(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
- 330 J=N: PRINT "N"; J; TAB(6); "CAP"; C(J)
- 340 PRINT: CC=G/(RT*B*F0*1E+06): PRINT "COUPLING CAPACITORS"; CC
- 350 PRINT: PRINT "WANT TO CHANGE: NOTHING (N), UNMATCHED Z (Z)
- 360 PRINT "LENGTH RESONATOR (LR), LENGTH STUB (LS)";: INPUT Q$
- 370 IF Q$="N" THEN 420 ELSE IF Q$="Z" THEN INPUT "NEW Z"; R: GOTO 130
- 380 IF Q$="LR" THEN INPUT "NEW RESONATOR LENGTH IN DEG"; AR: GOTO 130
- 390 IF Q$="LS" AND C$="C" THEN 350
- 400 IF Q$="LS" THEN INPUT "NEW STUB LENGTH IN DEG"; AS: GOTO 130
- 410 IF Q$="END" THEN END ELSE 350
- 420 PRINT: INPUT "WANT HARD COPY (Y/N)"; Q$
- 430 IF Q$="N" THEN END ELSE LPRINT
- 440 LPRINT, "COMBLINE FILTER DESIGN": LPRINT
- 450 LPRINT, "CENTER FREQ"; F0, "BANDWIDTH"; Q*F0
- 460 LPRINT, "Z TERMINAL"; RT,"Z UNMATCHED"; R
- 470 LPRINT, "LENGTH RESONATOR"; LR/DR, "LENGTH STUB"; LS/DR
- 480 LPRINT, "RESONATOR Z=", ZR: LPRINT: FOR J=1 TO N-1
- 490 IF C$<>"C" THEN 520
- 500 LPRINT, "N"; J; TAB(6); "CAP"; C(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
- 510 J=N: LPRINT, "N"; J; TAB(6); "CAP"; C(J): GOTO 540
- 520 LPRINT, "N"; J; TAB(6); "Z STUB"; Z(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
- 530 J=N: LPRINT, "N"; J; TAB(6); "Z STUB"; Z(J)
- 540 LPRINT: LPRINT, "COUPLING CAPACITORS"; CC: GOTO 350
-